//获取当前日期
export function getNowDate(isFull = false) : string {
    let date = new Date()
    let sign2 = ':'
    let year = date.getFullYear() // 年
    let month : string | number = date.getMonth() + 1 // 月
    let day : string | number = date.getDate() // 日
    let hour : string | number = date.getHours() // 时
    let minutes : string | number = date.getMinutes() // 分
    let seconds : string | number = date.getSeconds() //秒
    let weekArr = [ '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期天' ]
    let week = weekArr[date.getDay()]
    // 给一位数的数据前面加 “0”
    if (hour >= 0 && hour <= 9) {
        hour = '0' + hour
    }
    if (minutes >= 0 && minutes <= 9) {
        minutes = '0' + minutes
    }
    if (seconds >= 0 && seconds <= 9) {
        seconds = '0' + seconds
    }
    if (!isFull) {
        return '' + hour + sign2 + minutes
        //    + sign2 + seconds
    }
    if (month >= 1 && month <= 9) {
        month = '0' + month
    }
    if (day >= 0 && day <= 9) {
        day = '0' + day
    }
    return year + '-' + month + '-' + day + ' ' + hour + sign2 + minutes + sign2 + seconds
}

// 显示以当前时间为基准的特定时间/日期显示格式 仿照qq
// 规则如下:
// 与当前日期跨年 show:年-月-日
// 与当前日期不跨年但跨月 show:月-日
// 与当前日期不跨年不跨月跨天 show:月-日
export function getShowDateString(time : number | Date | string | undefined) : string {

    if (time === undefined) {
        return 'undefined'
    }

    let curDate = new Date()
    let preDate = new Date(time)

    if (Number.isNaN(preDate.getDate())) {
        throw new Error('错误的日期格式')
    }

    let subSec = curDate.getTime() - preDate.getTime()
    if (subSec < 0) {
        throw new Error('不能是未来日期')
    }

    //跨天
    let daySpan = curDate.getDate() !== preDate.getDate()
    //跨月
    let monthSpan = curDate.getMonth() !== preDate.getMonth()
    //跨年
    let yearSpan = curDate.getFullYear() !== preDate.getFullYear()

    //跨年
    if (yearSpan) {
        console.log(1)
        return `${ preDate.getFullYear() }-${ preDate.getMonth() + 1 }-${ preDate.getDate() }`
    }

    //跨月
    if (monthSpan) {
        console.log(2)
        return `${ preDate.getMonth() }-${ preDate.getDate() }`
    }

    //大于两天
    if (subSec > 2 * 60 * 60 * 24 * 1000) {
        return `${ preDate.getMonth() + 1 }-${ preDate.getDate() }`

    } else {
        if (daySpan) {
            return '昨天'
        } else {
            return `${ preDate.getHours() }:${ preDate.getMinutes() }`
        }
    }


}
